iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
Modern Web

菜鳥30日自學SASS及SCSS系列 第 20

【D-2 0】進階Sass的字符串函數(1)

  • 分享至 

  • xImage
  •  

字符串函數是用來處理字符串的函數。

unquote()函數

刪除字符串中的引號。
如果這個字符串沒有帶有引號,將返回原始的字符串。

例如:

// scss //
.line1 {
    content:  unquote('Good Morning!') ;  // 單引號 //
}
.line2 {
    content:  unquote("Good Morning!") ;  // 雙引號 //
}
.line3 {
    content: unquote("'Good Morning!");   // 雙單 雙 //
}
.line4 {
    content: unquote("Good Morning!'");   // 雙 單雙 //
}
.line5 {
    content: unquote("'Good Morning!'");  // 雙單 單雙 //
}
.line6 {
    content: unquote('"Good Morning!"');  // 單雙 雙單 //
}
.line7 {
    content: unquote("I'm a cute girl");  // 雙 字符 單 雙 //
}
.line8 {
    content: unquote Good Morning!;  
}

編| 括號內所有字串最外層的單引號或雙引號皆會被移除。
譯| 在.line7的括號內有一個單引號被包覆在字符串裡,無法移除。
後|
 V

// css //
.line1 {
  content: Good Morning!;    // 無單引號 //
}

.line2 {
  content: Good Morning!;    // 無雙引號 //
}

.line3 {
  content: 'Good Morning!;   // 單  //
}

.line4 {
  content: Good Morning!';   //   單//
}

.line5 {
  content: 'Good Morning!';  // 單 單 //
}

.line6 {
  content: "Good Morning!";  // 雙 雙 //
}

.line7 {
  content: I'm a cute girl;  // 單  //
}

.line8 {
    content: unquote Good Morning!;  
}

unquote( )函數只能刪除字符串最前和最後的引號(雙引號或單引號),而無法刪除字符串中間的引號。如果字符沒有帶引號,返回的將是字符串本身。

quote()函數

給字符串添加引號。
如果字符串自身带有引號會统一換成雙引號""。

例如:

// scss //
.line1 {
    content:  quote('Good Morning!') ;  // 單引號 //
}
.line2 {
    content:  quote("Good Morning!") ;  // 雙引號 //
}
.line3 {
    content: quote("'Good Morning!");   // 雙單 雙 //
}
.line4 {
    content: quote("Good Morning!'");   // 雙 單雙 //
}
.line5 {
    content: quote("'Good Morning!'");  // 雙單 單雙 //
}
.line6 {
    content: quote('"Good Morning!"');  // 單雙 雙單 //
}
.line7 {
    content: quote("I'm a cute girl");  // 雙 字符 單 雙 //
}
.line8 {
    content: quote(' ');  
}

編|
譯| 若括號內已有單雙引號,則不會再增加雙引號。
後|
 V

// css //
.line1 {
  content: "Good Morning!";    // 雙引號 //
}

.line2 {
  content: "Good Morning!";    // 雙引號 //
}

.line3 {
  content: "'Good Morning!";   // 雙引號 //
}

.line4 {
  content: "Good Morning!'";   // 雙引號 //
}

.line5 {
  content: "'Good Morning!'";  // 雙引號 //
}

.line6 {
  content: '"Good Morning!"';  // 雙引號 //
}

.line7 {
  content: "I'm a cute girl";  // 雙引號 //
}

.line8 {
  content: " ";                // 雙引號 //
}

*quote()函數只能給字符串增加雙引號,而且字符串中間有單引號或者空格時,需要用單引號或雙引號括起,否則編譯的時候將會報錯。

例如:

// scss //
.line1 {
    content:  quote(Good Morning!) ;  
}

編|
譯|
後|
 V

error style.scss (Line 13: $string: ("Hello""Sass") is not a string for `quote')

注意:quote() 碰到特殊符號,比如: `!、?、> 、除中折號 - 和 下劃線_ 都需要使用雙引號括起,否則編譯時也會報錯!

To-upper-case()函數

字符串:小寫字母 -> 大寫字母

例如:

// scss //
.test {
  text1: to-upper-case(hello); // 全小寫->全大寫 //
 text2: to-upper-case(HELLO); // 全大寫->全大寫 //
 text3: to-upper-case(HelLo); // 大小寫->全大寫 //
}

編|
譯| !凡小必大。
後|
 V

// css //
.test {
  text1: HELLO; // 成功改成全大寫 //
  text2: HELLO; // 無改變 //
  text3: HELLO; // 成功改成全大寫 //
}

To-lower-case()函數

字符串:大寫字母 -> 小寫字母

例如:

// scss //
.test {
  text1: to-lower-case(hello); // 全小寫->全小寫 //
 text2: to-lower-case(HELLO); // 全大寫->全小寫 //
 text3: to-lower-case(HelLo); // 大小寫->全小寫 //
}

編|
譯| !凡大必小。
後|
 V

// css //
.test {
  text1: hello; // 無改變 //
  text2: hello; // 成功改成全小寫 //
  text3: hello; // 成功改成全小寫 //
}

上一篇
【D-19】進階Sass的控制命令 (@while、@each)
下一篇
【D-2 1】進階Sass的字符串函數(2)
系列文
菜鳥30日自學SASS及SCSS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言